package methodref02;

import org.junit.Test;

import java.util.function.Function;

/**
 * 构造方法的引用格式:
 *  前提:
 *   引用的构造方法和Lambda表达式对应接口中的抽象方法形参类型要保持一致
 *  格式:
 *   类名::new
 *
 * 数组对象的引用格式:
 *   类型[]::new
 */
public class MethodRefDemo03 {
    @Test
    public void test01(){
        //Function<String, Person> f = name -> new Person(name);
        Function<String, Person> f = Person::new;
        System.out.println(f.apply("老王"));
    }

    @Test
    public void test02(){
        //Function<Integer, int[]> f = n -> new int[n];
        Function<Integer, int[]> f = int[]::new;
        System.out.println(f.apply(3));
        System.out.println(f.apply(3).length);
    }
}
